
/**
 * 从消息列表过滤出图片消息，并将图片地址以数组形式返回
 * @param       {[Array]} messages [消息列表]
 * @constructor
 * @return      {[Array]}          [图片数组]
 */
export function getImgsFrom (messages) {
  if (!(messages instanceof Array)) return ; // 限定类型

  const imgArr = []; // 用来存储图片地址

  /* 遍历消息列表找到图片消息 */
  messages.forEach(item => {
    if (item.MsgType == 3) {
      imgArr.push(`${API.baseUrl}Upload/${item.MsgUrl.split('|')[0]}`)
    }
  });

  return imgArr;
}


/**
 * 图片预加载方法 采用ajax请求方式
 * @param       {[Array]}   imgs     [图片路径数组]
 * @param       {Function} callback [完成加载的回调]
 * @constructor
 */
export function ImgPreLoad(imgs, callback) {
  let fetchNum = 0; // 记录请求数

  /* 开始请求 */
  imgs.forEach(item => {
    fetchNum++; // 每次请求数加一
    $.get(item).done(() => {fetchNum--;}) // 每次完成后请求数减一（无论成功失败
  })

  let checker = window.setInterval(() => { // 检查是否完成所有请求
    if (fetchNum == 0) {  // 完成所有请求
      window.clearInterval(checker); // 清除计时器
      callback(); // 调回调
    }
  }, 200)
}
